﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BBCP.UI.Tasks;
using BBCP.UI.Customers;

namespace BBCP.UI.Menu
{
    public class MenuFactory
    {
        public enum MenuType
        {
            MainMenu,
            EmployeeMenu
        }

        public Menu GetMenu(MenuType type)
        {
            switch (type)
            {
                case MenuType.MainMenu:
                    return GetMainMenu();
                case MenuType.EmployeeMenu:
                    return GetEmployeeMenu();
                default:
                    break;
            }
            return null;
        }

        private Menu GetEmployeeMenu()
        {
            return new Menu()
            {
                Name = "Zarządzanie klientami",
                MenuItems = new[]
                {
                    new MenuItem{
                        ItemName="Lista klientów",
                        ItemKey='1',
                        Task=new ShowList()
                    },

                    new MenuItem{
                        ItemName="Dodaj klienta",
                        ItemKey='2',
                        Task=new AddCustomer()
                    },
                        new MenuItem{
                        ItemName="Usuń klienta",
                        ItemKey='3',
                        Task=new DelCustomer()
                    },

                    new MenuItem{
                        ItemName="Wyjście",
                        ItemKey='Q',
                        Task=new QuitTask()
                    }
                    }
            };

        }

        public Menu GetMainMenu()
        {
            return new Menu()
            {
                Name = "Menu główne",
                MenuItems = new[]
                {
                    new MenuItem{
                        ItemName="Sumaryczna wartość sprzedaży każdego pracownika",
                        ItemKey='1',
                        Task=new SellSummary()
                    },
                    new MenuItem{
                        ItemName="10 produktów z najwyższym rabatem",
                        ItemKey='2',
                        Task=new GetBestDiscount()
                    },
                     new MenuItem{
                        ItemName="Sprzedane produkty wg. ilości",
                        ItemKey='3',
                        Task=new CountProducts()
                    },
                     new MenuItem{
                        ItemName="Stan magazynu z uwzględnieniem dostawców",
                        ItemKey='4',
                        Task=null
                    },
                    
                     new MenuItem{
                        ItemName="Zestawienie klientow wedlug wartosci zamowien.",
                        ItemKey='5',
                        Task=new CustommersSummary()
                     },

                     new MenuItem{
                        ItemName="Zarządzanie bazą danych",
                        ItemKey='6',
                        Task=new EmployeeList()
                     },

                     new MenuItem{
                        ItemName="Wyjście",
                        ItemKey='Q',
                        Task=new QuitTask()
                    }
                    }
            };
        }
    }
}
